Data Formats

 

Two basic data formats are used by the driver.

Bit Number

The individual output to be affected by functions such as PIPLX_OpBit is specified by a bit number value.

For any sub-unit type other than a matrix, this unity-based number directly specifies the affected output channel.

For a matrix sub-unit, the bit number of a crosspoint is determined by folding on the row-axis. For example, in a matrix of dimensions 8 rows x 12 columns, bit number 13 represents the crosspoint (row 2, column 1):

 

Note: matrix operation

More straightforward matrix operation using row/column co-ordinates is provided by PIPLX_OpCrosspoint and associated functions.

Data Array

Functions affecting all of a sub-unit's outputs such as PIPLX_WriteSub utilise a one-dimensional data array (or vector) of 32-bit longwords. In the array, each bit represents the state of one output channel: '0' for OFF, '1' for ON.

The least significant bit of the base element of the array corresponds to channel 1. More significant bits correspond to higher-numbered channels.

 

For a matrix sub-unit, bit assignments follow the same pattern as that used to determine bit numbers. Hence for the matrix example above:

 

Element 0 bit 0 = row 1 column 1

Element 0 bit 11 = row 1 column 12

Element 0 bit 12 = row 2 column 1

Element 2 bit 31 = row 8 column 12

 

Identical formatting is employed for PIPLX_WriteMask, as well as the results of the PIPLX_ViewSub and PIPLX_ViewMask functions. The result of input function PIPLX_ReadSub is similar, though contained in a single longword.